package cn.edu.swu.miniwebsvr.handler;

import cn.edu.swu.miniwebsvr.core.Handler;
import cn.edu.swu.miniwebsvr.core.Parameter;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class TimeHandler implements Handler {
    @Override
    public void handle(Parameter request, OutputStream response) {
        PrintWriter writer = new PrintWriter(response,true, StandardCharsets.UTF_8);

        // 获取当前时间
        String currentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        // 构建响应体内容
        String content = "<h1>MiniWebSvr Current Time</h1>" +
                "<p>Server Time: <strong>" + currentTime + "</strong></p>";

        // TODO: [222024321072057/王文薏] 构造完整的 HTTP 响应头和响应体
        // 1. 响应状态行：协议版本 + 状态码 + 状态描述
        writer.println("HTTP/1.1 200 OK");
        // 2. 响应头：指定内容类型、编码、长度等元信息
        writer.println("Content-Type: text/html; charset=UTF-8");
        writer.println("Content-Length: " + content.getBytes(StandardCharsets.UTF_8).length);
        writer.println("Connection: close");// 告知客户端响应完成后关闭连接
        // 3. 空行：分隔响应头和响应体
        writer.println();

        // 4. 响应体：实际内容
        writer.println(content);
        writer.flush();// 强制刷新缓冲区，确保数据发送到客户端
    }
}
